Handle keypresses better when there is no completion. (#458298, Christian
authorMatthias Clasen <mclasen@redhat.com>
Thu, 19 Jul 2007 15:44:23 +0000 (15:44 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 19 Jul 2007 15:44:23 +0000 (15:44 +0000)
2007-07-19  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkentry.c (gtk_entry_completion_key_press): Handle
        keypresses better when there is no completion.  (#458298,
        Christian Persch, patch by Xan Lopez)

        * gtk/gtkentrycompletion.c
        (gtk_entry_completion_insert_completion_text): Small cleanup.

svn path=/trunk/; revision=18505

ChangeLog
gtk/gtkentry.c
gtk/gtkentrycompletion.c

index a3e8ca77328cec922933518a72ca36a6c14a6408..53cca51a3aef972fc229e4351cc1d216297c9d96 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-07-19  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkentry.c (gtk_entry_completion_key_press): Handle
+       keypresses better when there is no completion.  (#458298,
+       Christian Persch, patch by Xan Lopez)
+
+       * gtk/gtkentrycompletion.c
+       (gtk_entry_completion_insert_completion_text): Small cleanup.
+
 2007-07-19  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtksettings.c (apply_queued_setting): Merge color
index 6dba110ed1ba4f797e799b63890e7dfa8119f02d..01d65b545c15a8fc760388f42ce901dda5bd10b8 100644 (file)
@@ -5893,9 +5893,17 @@ gtk_entry_completion_key_press (GtkWidget   *widget,
            event->keyval == GDK_Right ||
            event->keyval == GDK_KP_Right) 
     {
+      GtkTreeSelection *sel;
+      GtkTreeIter iter;
+      GtkTreeModel *model = NULL;
+
       _gtk_entry_reset_im_context (GTK_ENTRY (widget));
       _gtk_entry_completion_popdown (completion);
 
+      sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (completion->priv->tree_view));
+      if (!gtk_tree_selection_get_selected (sel, &model, &iter))
+        return FALSE;
+
       if (completion->priv->inline_selection)
         {
           /* Escape rejects the tentative completion */
index 8c4268a794eff8b128601a03670ce2d13f8fb18d..e3dd01fdad82a4d4df26ce5772e80ff1b74563f5 100644 (file)
@@ -1690,7 +1690,8 @@ gtk_entry_completion_insert_completion_text (GtkEntryCompletion *completion,
 
   if (completion->priv->completion_prefix == NULL)
     completion->priv->completion_prefix = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry)));
-    gtk_entry_set_text (GTK_ENTRY (priv->entry), text);
+
+  gtk_entry_set_text (GTK_ENTRY (priv->entry), text);
 
   len = strlen (priv->completion_prefix);
   gtk_editable_select_region (GTK_EDITABLE (priv->entry), len, -1);